package org.example.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.example.admin.dao.entity.GroupDO;
import org.example.admin.dto.req.GroupSortReqDTO;
import org.example.admin.dto.req.GroupUpdateReqDTO;
import org.example.admin.dto.resp.GroupBaseDTO;

import java.util.List;

/**
 * @author weibin
 * @since 2025/10/4 18:28
 */
public interface GroupService extends IService<GroupDO> {

    /**
     * 新增分组
     *
     * @param groupName  分组名称
     */
    void saveGroup(String groupName);

    /**
     * 列表查询分组
     *
     * @return  分组列表
     */
    List<GroupBaseDTO> listGroup();

    /**
     * 修改分组
     *
     * @param requestParam  修改分组请求参数
     */
    void updateGroup(GroupUpdateReqDTO requestParam);

    /**
     * 根据分组标识删除分组
     *
     * @param gid   分组标识
     */
    void deleteGroup(String gid);

    /**
     * 分组排序功能
     *
     * @param requestParam  分组排序请求参数
     */
    void sortGroup(List<GroupSortReqDTO> requestParam);

    /**
     * 新增分组重载方法
     *
     * @param username  用户名
     * @param groupName 分组名
     */
    void saveGroup(String username, String groupName);
}
